NOTES
What is the loop condition?
Try first:
bit.move()
bit.paint('red')
Use the stepper to back off the error and observe where the problem occurred.
Observe how the paint('red')
clobbers the square and colludes with the loop condition.
Note how the loop body and condition interact. Planning out and thinking through this interaction is important.
With move-then-paint, do you move first to get off the original red square, or do you simply repaint it?
Sometimes it is more convenient to repaint a square or two. That's fine. But avoid recless repainting (i.e. inserting paint statements all over your code) as a workaround to poorly-understood boundary conditions.
Use the snapshot feature to show how the students can coordinate stages of their solution with positions in their code.
Finally, show how the code works on both problems (switch between the two tabs).